Compiling functional pipe/stream abstractions into conventional programs: Software Pipelines
نویسنده
چکیده
Representing a potentially infinite indexed collection of data is a handy abstraction in a number of programming situations. Computational scientists routinely try to finess this notion by allocating an array of some “large enough” size, and (in a perhaps delicate move) re-allocate if it is not large enough. Even if one is aware of some direct implementation of infinite stream/pipe programming one might still dismiss it as one of those tricks promoted primarily by programming language theorists using Lisp or other oddball languages. In fact, the manipulation programs we discuss are most conveniently expressed in a functional representation, and are given in ANSI Common Lisp, but we use them to generate programs in C. Thus the stream/pipe abstraction may be used, in principle, even by those for whom all “real” programs must be written in some efficiently compiled language like C (or with minor changes, Fortran, etc.) The program applications include power series, sparse floating-point arithmetic, solution of ODEs.
منابع مشابه
Change-Resilient Design and Dataflow Optimization for Distributed XML Stream Processors
We propose a new stream-processing framework based on a virtual assembly line (val) model. We instantiate the val framework obtaining ∆-XML, an approach for designing and optimizing distributed XML processing pipelines. val/∆-XML greatly simplifies the design of change-resilient dataflow pipelines: XML processors (called actors) can be inserted, deleted, and their “scope of work” (the parts of ...
متن کاملCompiling Data Dependent Control Flow on SIMD GPUs
Current Graphic Processing Units (GPUs) (circa. 2003/2004) have programmable vertex and fragment units. Often these units are implemented as SIMD processors employing parallel pipelines. Data dependent conditional execution on SIMD architectures implemented using processor idling is inefficient. I propose a multi-pass approach based on conditional streams which allows dynamic load balancing of ...
متن کاملStream Processing Hardware from Functional Language Specifications
We describe work-in-progress which aims at compiling suitably restricted functional programs with lazy lists directly into hardware. This extends previous work on SAFL which demonstrated that functional languages are effective at describing “fire-and-wait-for-result” programs, but for which stream-like I/O was awkward or impossible. Other frameworks (e.g. Lava) have used functional languages as...
متن کاملParallelizing XML data-streaming workflows via MapReduce
In prior work it has been shown that the design of scientific workflows can benefit from a collection-oriented modeling paradigm which views scientific workflows as pipelines of XML stream processors. In this paper, we present approaches for exploiting data parallelism in XML processing pipelines through novel compilation strategies to the Map-Reduce framework. Pipelines in our approach consist...
متن کاملScheduling and Optimizing Stream Programs on Multicore Machines by Exploiting High-Level Abstractions
Scheduling and Optimizing Stream Programs on Multicore Machines by Exploiting High-Level Abstractions by Dai Nguyen Bui Doctor of Philosophy in Engineering Electrical Engineering & Computer Sciences University of California, Berkeley Professor Edward A. Lee, Chair Real-time streaming of HD movies and TV via YouTube, Netflix, Apple TV and Xbox Live is gaining popularity. Stream programs often co...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2000